************************************************************************** ** THIS FILE CONTAINS IMPORTANT INFORMATION. PLEASE READ IT COMPLETELY. ** ************************************************************************** NewYork V1 r201 DEMO Copyright 1996-1997 Finale Development, Inc. Written by Christopher E. Aldi Credits ~~~~~~~ Source Contributions And Support From; Dan Murrell (danimal) for help with all kinds of neat stuff. Osma Ahvenlampi (Tau) for Quote-Printable/Base64 Examples (DarkDesgn) for help with the ActiveList Parser ClassAct GUI is Copyright 1995-1997 by the ClassAct Development Team Christopher Aldi, Tim Aston, Osma Ahvenlampi and Petter Nilsen. Installing NewYork ~~~~~~~~~~~~~~~~~~ To install NewYork, just click on the Install script provided. You can also just run it from the directory. NewYork does not require any assignments or external files other than the ClassAct GUI. The Install script will copy the required ClassAct GUI to your system if you do not have them already. Function Overview ~~~~~~~~~~~~~~~~~ First, it should be said that while a number of things and NewYork are fairly usable at this point in time, not everything has been implemented, enabled or debuged. The overall design is not expected to change much betweeen this beta release and final release. However, suggestions/comments are welcome. If they can not be applied to this work in progress, they could be applied to some later upgraded release and steps taken now to make doing so less painful later. Some noteworthy features include; o Progressive article retrieval. o News posting. o News post reply via News or E-Mail. o Configurable External E-Mailer (ie. Voodoo, Yam, etc) o Hierarchical subscription list manager window. o NNTP User Authorization, the two most common of three forms implemented. o Fast news header retrieval w/local disk cache option. o Automatically trims its own data files "on the fly". o Program "SpeedBar" for easy control of common functions. o Optional "SpeedTips" popup help system (req. V43 window.class) o UUDecoder - can be either the currently displayed article, a diskfile or a group of selected article(s). o Font and Screen Mode preferences. o Optional in-window clock. o Simple (but growing!) ARexx port. o Mark articles as read/unread. o Shows the number of available articles and the number unread. o Remembers, and optionally filters out, read articles between sessions. o Articles sorted by Subject, Author, or NNTP Server ID. o Optional "low-memory" configuration mode for 2M users. A few notes are in order. The SpeedTips system is something new in ClassAct 2.1 beta which is not available to everyone yet. However, if your ClassAct is older you simply will not have this help (simular to bubble help), but NewYork will continue to function. News posting/followup is not totally completed yet but it will post your articles. Additional note, with ClassAct 2.0 V42.52 window.class I have enabled the speedtips system via presently undocumented means. To enable or disable this help in the main window, press the HELP key. Note well, XOVER and XHDR are draft standards, that means not all news servers will support these new methods of retrieving news. The final newyork NewYork will fall back to RFC977 compliant HEAD or ARTICLE server commands in the event the XOVER or XHDR system should fail. The default set up is for XOVER, however you may select XHDR in preferences. The XOVER system transfers (atleast) 8 important fields from the article headers. NewYork retrieves thus XOVER information in a batch. About 4 of the 8 fields are of interest to NewYork at this time. The XHDR system allows NewYork to specify some specific single field. This method can be faster, but is largely server implementation dependant. In the current NewYork, only the Subject: is retrived. The From: and Date: fields are NOT retrieved until an article is selected. Thus, XHDR potentially uses less memory than XOVER. However, XHDR is not as well debugged or complete as the XOVER implementation at this time. In XHDR mode, the article size is Bytes is also unavailable, having this information can speed up retrieval of larger articles. For the time being the standard/default XOVER method is highly recommended. Posting News ~~~~~~~~~~~~ To post a new article, you must select news composition button from the speedbar. The composition/editor window will then open. The news group to post the article too will that of the currently selected news group, i.e., the group currently being read. You must then type in the subject of your post, unless you are following up to the current article, in this case, the subject field will automatically be filled out for you. You may select a different group to post to from a small list by clicking the popup gadget just to the right of the group string gadget. Cross-posting by selecting multiple groups is not yet supported. Once you have composed your message, you should then click the post/send button in the composition speedbar. At any time you may cancel posting an article by clicking the window's close button. The article header, body and signature will then be created as a temporary file in T: prior to being posted. Durring the beta period, this file is NOT deleted after the post. In the case of failure the header content may be valuable in finding bugs in the article composition/posting system. It should be also noted that the signature appended to your article is taken from an optional file named "PROGDIR:NewYork.Signature". That is to say, "NewYork.Signature" is loaded from the programs working directory if found. This file name and location may become a user preference in the future. Preferences & Configuration ~~~~~~~~~~~~~~~~~~~~~~~~~~~ The first thing you must do is configure newyork, I know, everyone hates this part, and the beta testers certainly have done & re-done it often. :) In NewYork preferences, you will find a click-tab gadget across the top of the window. This organizes preferences by function/catagory. The catagories include; General, Display, Fonts, Program, NetWork, and Encoding. On the General page you must fill in the four (4) string gadgets with your personal data, ie; your email address, real name, organization (optional) and your reply (usually the same as your email address). On the Display page you can change the screen mode used by NewYork, be it on the Workbench, a Custom screen, etc. You may also adjust the palette of your custom screen usingthe handly palette gadget and RGB sliders. If you intend to run NewYork on the workbench, you do not have to change anything, the defaults will be fine. On the Fonts page you may adjust the fonts used in various places within NewYork. You may select the interface font (the font that is used for the GUI when on a custom screen), the message font (the font used to display the news article) and the index font (the font used to display the group and article listviews). NewYork should function normally with the default settings, but feel free to experiment with different font settings. On the Program page you may set various program related settings. Here again NewYork will function with the defaults, however, you will likely want to configure the path and arguments for your email program. The default configuration is set up to use the "Voodoo" email client. You need only edit the path to the executable program. For other emailers, consult your mailer documentation for use as a plug-in via command line arguments. In addition you may wish to enable the 'Cache Headers' option. Enabling this will cause NewYork to save (cache) header data (ie; Subject:, From:, Date:, etc) to a small disk data file. When revisiting a news group, this cache is reloaded and only news article headers not present in the cache are downloaded from the server. This makes NewYork *MUCH* faster to use, especially notiable on large & highly active groups. On the NetWork page you must set your NNTP news server address. As a rule of thumb, if you email address is 'moocow@grassfarm.net' then your news server will likely be called 'news.grassfarm.net'. NewYork tries to figure out the news server name if it can, but you should confirm this information which your ISP should have made available to you. The default "port" for news is 119, unless your ISP directed you to use something else, you should except this standard default setting. Some ISP news servers require authorizations to do certain functions such as posting news, or downloading the servers active group list. NewYork supports two of the three known standards. If your ISP requires a news server login name and password, this is the authorization information, it may or may not be the same as your ISP user login and password. Subscription Editor ~~~~~~~~~~~~~~~~~~~ The next thing you will want to do with NewYork is download the group active list from the news server. Most news servers carry atleast 15,000 to 35,000 groups. Thus, the active file is generally 500K to possibly over 1M, depending on the speed of your network connection, this could take several minutes. Once you have the list, NewYork will parse the active list to its own custom sorted hierarchical subscription resource format. This format is significantly smaller than the format received from the server, yielding a data file approximatly 150K to 300K. Such a large list can be difficult to manage, in both user interface, and programmatically sorting and/or processing such data . NewYork presents this large list as a hierarchical group tree list. For example, rather than a list of groups like so; -------------------------------- comp.sys.amiga.advocacy comp.sys.amiga.announce comp.sys.amiga.programmer comp.sys.atari.advocacy comp.sys.atari.programmer -------------------------------- NewYork visually organizes the groups in a tree like so; -------------------------------- + comp + sys + amiga advocacy announce programmer + atari advocacy programmer -------------------------------- This may or may not confuse some of you, however once you try to use it it will quickly make sence. Such listtrees are fairly common place in Windows, Mac, MUI and other interfaces. The hierarchical tree makes handling a large list such as this much more managable because you can expand/colapse the group hierarchy to show or hide various groups. For example you could colapse the list at the 'amiga' level like so; -------------------------------- + comp + sys - amiga + atari advocacy programmer -------------------------------- By default, all levels are colapsed yielding a short manageable list, you can then move to an appropriate section, such as alt or comp. Expand the level, such as alt, to reveal sub-catatories of binaries, source, etc. And continue down in to the group tree. The deepest/last level of the tree are actual groups, these have checkboxes beside the group names. Selecting the check box subscribes you to the group, like wise an unchecking a checkbox unsubscribes you from that group. The state of these checkboxes are stored directly in newyork's custom resource data file. Memory usage for the subscription editor is keep fairly low compared to most other modern news readers, however, it can still requier as much as 2 to 4 megabytes of memory to build the list. I have been unable to confirm it, but I've been told mNews can use as much as 8 megs, and perhaps more for large lists. If you don't have the memory to spare, you can join a group "on demand" by selecting the "Join By Name" option from the project menu. Here, you can simply type in the name of the group into the string gadget. This will retrieve the groups article list immediatly. Use of this feature is presently discouraged due to some remaining odd bug(s) - but it doesn't hurt to give it a try and cross your fingers! ;) KeyBoard Control ~~~~~~~~~~~~~~~~ A great deal of NewYork can be controlled via the keyboard. The main window article text display can be controlled as so; Space = Page down BkSpc = Page up Cursor Up = Up 1 line Cursor Dn = Down 1 line N = Read next article P = Read previous article The main window group and article lists can be controlled as so; 7 = Top of list 1 = Bottom of list 8 = Up 1 line 2 = Down 1 line 9 = Page up 3 = Page down Enter = Retrieve selected group, or article. The subscription window list functions in a simular fashion. To Do ~~~~~ I would like to complete the following list of features for the future of NewYork. Any other simple or useable feature suggestions are welcome. However the focus now is to complete/polish the loose ends, freeze the feature set and focus on debugging any remaining bugs for release ASAP. o Automatically ask user to download news group active list from server upon initial configuration. o News post file attachment. o MIME Base64 Encoding/Decoding. o More (useful) ARexx commands. o KillFile Editor (Scoring Perhaps?) o Replace use of textfield.gadget for article display with a more efficient and customizable text display engine. Thanks ~~~~~~ Far from a complete list of those who have had a taste of NewYork and offered input durring development, but I'd like to thank some of my most vocal beta testers for a job well done: Rafael Munoz (Zonum) (Sibbi) <> (frotz) Greg Scott (NAN) Dan Murrell, Jr (danimal) Magnus Lilja (lilja) Timothy J. Aston (Timmer) Mike Latinovich (SkyGuy) Scott Ellis (ScottE) Mark Beal (Bealy) Eric Webb (Foobar) <> (TheBarron) <> (NightSpd) <> (NiteFlite) <> Eric (RMerlin) <> Legal Notes ~~~~~~~~~~~ NewYork is Copyright 1996-1997 by Christopher E. Aldi, of Finale Development, Inc. The included BOOPSI gadget and image classes are part of ClassAct, Published by Finale Development, Inc. For information about using ClassAct in your own applications, drop by the web page at; http://thule.icenet.no/classact http://www.warped.com/~timmer/classact Or you may also contact me, Christopher Aldi via email; caldi@finale-dev.com BugReports ~~~~~~~~~~ Please report any bugs, suggestions or quirks to me and I will try to address them as soon as possible. A number of people have been testing NewYork for some time now, and it has proven itself reasonably stable, however, nothing or no one is perfect, especially a beta. Getting detailed bug reports from users most helpful in this stage of development. When reporting bugs it is most helpful to know the revision of newyork, any system hacks or patches being used, the last few things you did with NewYork before the crash or error, and if at all possible, any 'enforcer' output. Enforcer is a debuging tool that requires an MMU, it should be available on AmiNet.